home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / Drtf / DRichStyle.h < prev    next >
Text File  |  1996-07-05  |  4KB  |  164 lines

  1. // DRichStyle.h
  2. // d.g.gilbert
  3.  
  4. #ifndef _DRICHSTYLE_
  5. #define _DRICHSTYLE_
  6.  
  7. #include "Dvibrant.h"
  8. #include "DObject.h"
  9.  
  10.  
  11. class DRichView;
  12.  
  13.  
  14. class DStyleObject : public DObject
  15. {
  16. public:
  17.     enum { kDefaultObject = 1 };
  18.     short     fKind;
  19.     ulong        fSize;
  20.     char*        fData;
  21.  
  22.     DStyleObject();
  23.     DStyleObject( short kind, void* data, ulong dsize, Boolean owndata= false);
  24.     virtual    Boolean suicide(void);  // prefered to delete 
  25.     virtual    Boolean suicide(short ownercount);
  26.   virtual ~DStyleObject();
  27.     virtual void SetData( short kind, void* data, ulong dsize, Boolean owndata);
  28.   virtual void Draw(Nlm_RecT area);
  29.   virtual Boolean CanDraw();
  30.     virtual Boolean IsNotEqual( DStyleObject* other);
  31. };
  32.  
  33.  
  34.  
  35.  
  36. class DRichStyle : public DObject
  37. {
  38. public:
  39.     enum ulines {
  40.         kNoUnderline= 0,
  41.         kUnderline= 1,
  42.         kDotuline=2,
  43.         kDbluline=3,
  44.         kWorduline=4
  45.         };
  46.  
  47.     DStyleObject*    fObject;
  48.     short        nextofs;
  49.   short        pixheight, pixwidth, pixleft;        
  50.   short        linkid;        // gopher/html link id 
  51.  
  52.   Nlm_Uint4    color;
  53.     Nlm_FonT    font;                      // includes fnt,size,bld/ital/uline 
  54.     short             superSub;             //point offset +/-, +=superscript 
  55.   unsigned int  underline : 3; // 0,1=uline,2=dotuline,3=dbluline,4=worduline
  56.   unsigned int  bold        : 1;
  57.     unsigned int  italic    : 1;
  58.   unsigned int  outline        : 1;
  59.   unsigned int  shadow        : 1;
  60.   unsigned int  strikeout    : 1;
  61.   unsigned int  smallcaps    : 1;
  62.   unsigned int  allcaps        : 1;    
  63.   unsigned int  boxed            : 1;
  64.   unsigned int  hidden        : 1;
  65.   
  66.   unsigned int  ispict       : 1;
  67.   unsigned int  ownpict   : 1;
  68.   unsigned int  ismap       : 1;
  69.   unsigned int  last      : 1;
  70.  
  71.     DRichStyle();
  72.   virtual ~DRichStyle();
  73.     virtual    Boolean suicide(void);  // prefered to delete 
  74.     virtual    Boolean suicide(short ownercount);
  75.     virtual Boolean IsNotEqual(DRichStyle* other);
  76.     //virtual DObject* Clone();
  77.     //virtual DRichStyle&  operator=( DRichStyle& ast);
  78. };
  79.  
  80.  
  81. struct StyleIndex {
  82.     short    styleid;    
  83.     short    nextofs;
  84. };
  85.  
  86.  
  87. class DParagraph : public DObject
  88. {
  89. public:
  90.     enum borders {
  91.         kNoBorder = 0,
  92.         kBorderSingle = 1,
  93.         kBorderThick = 2,
  94.         kBorderShadow = 3,
  95.         kBorderDouble = 4,
  96.         kBorderDot = 5,
  97.         kBorderDash = 6,
  98.         kBorderHair = 7
  99.         };
  100.      
  101.     enum tabs {
  102.          kTabLeft = 0,
  103.          kTabCenter= 1,
  104.          kTabRight= 2,
  105.          kTabDecimal = 3,
  106.          kTabBar = 4
  107.         };
  108.  
  109.      char    just, tablead;                  
  110.   short        deftabstop, numstops;
  111.      short    * tabstops;
  112.      char    * tabkinds;
  113.   short   firstInset,leftInset,rightInset;
  114.     short        spaceBefore,spaceAfter, spaceBetween;
  115.   short     minLines, minHeight;
  116.   short     startsAt, numRows;     
  117.   short     lineHeight, leadHeight; 
  118.   
  119.   char    * fDataPtr;     
  120.   char    * fText;             
  121.     StyleIndex*    fStyleIndex;
  122.     short        fNumStyles;
  123.  
  124.   unsigned int    borderstyle        : 4;
  125.   unsigned int  bordertop        : 1;
  126.   unsigned int  borderbottom    : 1;
  127.   unsigned int  borderleft    : 1;
  128.   unsigned int  borderright      : 1;
  129.   unsigned int  borderbetween : 1;
  130.   unsigned int  borderbar       : 1;
  131.      unsigned int  borderbox        : 1;
  132.   unsigned int  openSpace    : 1;
  133.   unsigned int  keepWithNext : 1;
  134.   unsigned int  keepTogether : 1;
  135.   unsigned int  newPage      : 1;
  136.      unsigned int  wrap           : 1;    
  137.   unsigned int  fDocOwnsData : 1; 
  138.   unsigned int  fDocOwnsStyles : 1; 
  139.   unsigned int  notCached    : 1;  
  140.   unsigned int  neverCached  : 1; 
  141.     unsigned int    spaceMultiply: 1;
  142.  
  143.     DParagraph();
  144.     DParagraph( char* data, Boolean docOwnsData, short lines, DParagraph* parFmt, 
  145.                   StyleIndex* styles, short numstyle, Boolean docOwnsStyles = true); 
  146.     virtual ~DParagraph();
  147.     virtual    Boolean suicide(void);  // prefered to delete 
  148.     virtual    Boolean suicide(short ownercount);
  149.     void     Initialize();
  150.     void  Copy(DParagraph* it);
  151.     virtual Boolean DoBorder();
  152.     virtual void DrawBorder(DRichView* itsView, short row, short item, Nlm_RecT* rpara, Nlm_RecT& rct);
  153.     virtual void SetTab( Boolean attab, short rleft, Nlm_RecT& drawr, Nlm_RecT* rpara, 
  154.                                                  Boolean& bartab, char& just);
  155.     virtual void DrawTab( DRichView* itsView, Nlm_RecT tabr, Nlm_RecT& drawr, Nlm_PoinT& atpt, 
  156.                                                   short yfont, Boolean bartab, Boolean dodraw);
  157.     //virtual DObject* Clone();
  158. };
  159.  
  160.  
  161.  
  162. #endif
  163.  
  164.